1. Technical Field
The embodiments disclosed herein are related to networks and network devices.
2. Related Art
Networking systems are commonly used to move network information (which may also be referred to interchangeably, as frames, packets or commands) between computing systems (for example, servers) or between computing systems and network devices (for example, storage systems). Various hardware and software components are used to implement network communication, for example, switches, adapters and other similar devices.
Network devices typically include a multi-port device where each port manages a point-to-point connection between itself and an attached system. Each port can be attached to a server, peripheral, input/output subsystem, bridge, hub, router, or another switch, where each of the aforementioned network devices also has one or more ports. Different network and storage protocols may be used to handle network information and storage information, for example, Fibre Channel, Ethernet and others.
Network devices often have to transmit packets to multiple ports. Such packets are referred to as broadcast or multicast packets. The multicast packets are typically identified by special attributes, for example, in the case of a Fibre Channel packet, a destination address of 0xFF_FFFF denotes a multicast packet. For an Ethernet packet, bit 40 of a destination media access control (MAC) address identifies the packet as a multicast packet.
Routing multicast packets can be a challenge. For example, routing multicast packets to multiple ports of a network device may be a part of a link aggregation group (LAG). LAG (Link Aggregation Group) is a method of inverse multiplexing using multiple Ethernet links, thereby increasing bandwidth and providing redundancy. LAGs are defined by the IEEE 802.1AX-2008 standard, which provides link aggregation allows one or more links to be aggregated together to form a LAG, such that a MAC (Media Access Control) client can treat the LAG as if it were a single link. This Layer 2 transparency may be achieved by the LAG using a single MAC address for all the device ports in the LAG group. LAG can be configured as either static or dynamic. Dynamic LAG uses a peer-to-peer protocol for control, called the Link Aggregation Control Protocol (LACP). This LACP protocol is defined within the 802.1AX-2008 standard.
It is undesirable to multicast a packet to all the ports within a LAG, when a port within the LAG receives the packet. If multicast packets are transmitted on more than one port of the LAG, multicast loops or storms can occur. This may consume more link bandwidth to transmit multiple copies of the same packet to the same location.
It is also undesirable to send the multicast packet from the same port that received the packet because it may also cause a multicast storm. These multicast loops or storms occur because a destination that receives the multicast packet resends the same packet to other ports within a multicast group. If the packet loops back to the sender it may get resent again various times resulting in an endless loop that consumes significant amounts of overall network bandwidth. Continuous efforts are being made to improve handling of multicast packets.